home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- #* Copyright (C) 2005-2006 Rick Richardson
- #*
- #* This program is free software; you can redistribute it and/or modify
- #* it under the terms of the GNU General Public License as published by
- #* the Free Software Foundation; either version 2 of the License, or
- #* (at your option) any later version.
- #*
- #* This program is distributed in the hope that it will be useful,
- #* but WITHOUT ANY WARRANTY; without even the implied warranty of
- #* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- #* GNU General Public License for more details.
- #*
- #* You should have received a copy of the GNU General Public License
- #* along with this program; if not, write to the Free Software
- #* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #*
- #* Authors: Rick Richardson <rick.richardson@comcast.net>
-
- VERSION='$Id: foo2hp2600-wrapper.in,v 1.65 2009/05/11 17:35:55 rick Exp $'
-
- #
- # Printer Notes:
- #
- # HP Color LaserJet 1600: -z0
- # HP Color LaserJet 2600n: -z0
- # HP Color LaserJet CP1215: -z1
- #
-
- PROGNAME="$0"
- BASENAME=`basename $PROGNAME`
- PREFIX=/usr
- SHARE=$PREFIX/share/foo2hp
- PATH=$PATH:/sw/bin:/opt/local/bin
-
- #
- # Log the command line, for debugging and problem reports
- #
- if [ -x /usr/bin/logger -o -x /bin/logger ]; then
- logger -t "$BASENAME" -p lpr.info -- "$BASENAME $@" </dev/null
- fi
-
- usage() {
- cat <<EOF
- Usage:
- $BASENAME [options] [ps-file]
-
- Foomatic printer wrapper for the foo2hp2600 printer driver.
- This script reads a Postscript ps-file or standard input
- and converts it to Zenographics ZjStream printer format.
-
- Normal Options:
- -b bits Bits per plane (1 or 2) [$BPP]
- -c Print in color (else monochrome)
- -d duplex Duplex code to send to printer [$DUPLEX]
- 1=off, 2=longedge, 3=shortedge
- -m media Media code to send to printer [$MEDIA]
- 1=standard, 2=transparency, 3=glossy, 257=envelope,
- 259=letterhead, 261=thickstock, 262=postcard, 263=labels
- -p paper Paper code [$PAPER]
- 1=letter, 5=legal, 7=executive, 9=A4, 11=A5, 13=B5
- 20=env#10, 27=envDL 28=envC5 34=envB5 37=envMonarch
- -n copies Number of copies [$COPIES]
- -r <xres>x<yres> Set device resolution in pixels/inch [$RES]
- -s source Source code to send to printer [$SOURCE]
- 1=tray2, 2=tray3, 4=manual/tray1, 7=auto
- Code numbers may vary with printer model.
- -t Draft mode. Every other pixel is white.
- -2/-3/-4/-6/-8/-10/-12/-14/-15/-16/-18
- Print with N-up (requires psutils)
- -o orient For N-up: -op is portrait, -ol is landscape, -os is seascape.
-
- Printer Tweaking Options:
- -u <xoff>x<yoff> Set offset of upper left printable in pixels [varies]
- -l <xoff>x<yoff> Set offset of lower right printable in pixels [varies]
- -L mask Send logical clipping values from -u/-l in ZjStream [3]
- 0=no, 1=Y, 2=X, 3=XY
- -P Do not output START_PLANE codes. May be needed by some
- monochrome-only printers.
- -X padlen Add extra zero padding to the end of BID segments [16]
- -z model Model: 0=HP CLJ 1600/2600n; 1=HP CLJ CP1215 [$MODEL]
-
- Color Tweaking Options:
- -g gsopts Additional options to pass to Ghostscript, such as
- -dDITHERPPI=nnn, etc. May appear more than once. []
- -G profile.icm Convert profile.icm to a Postscript CRD using icc2ps and
- adjust colors using the setcolorrendering PS operator.
- $SHARE/icm/ will be searched for profile.icm.
- -I intent Select profile intent from ICM file [$INTENT]
- 0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute
- -G gamma-file.ps Prepend gamma-file to the Postscript input to perform
- color correction using the setcolortransfer PS operator.
-
- Debugging Options:
- -S plane Output just a single color plane from a color print [all]
- 1=Cyan, 2=Magenta, 3=Yellow, 4=Black
- -D lvl Set Debug level [$DEBUG]
- -V $VERSION
- EOF
-
- exit 1
- }
-
- #
- # Report an error and exit
- #
- error() {
- echo "$BASENAME: $1" >&2
- exit 1
- }
-
- dbgcmd() {
- if [ $DEBUG -ge 1 ]; then
- echo "$@" >&2
- fi
- "$@"
- }
-
- #
- # Portable version of 'which'
- #
- pathfind() {
- if [ "$1" = -p ]; then
- optp=1
- shift
- else
- optp=0
- fi
- OLDIFS="$IFS"
- IFS=:
- for p in $PATH; do
- if [ -x "$p/$*" ]; then
- if [ $optp = 1 ]; then
- echo "$p/$*"
- fi
- IFS="$OLDIFS"
- return 0
- fi
- done
- IFS="$OLDIFS"
- return 1
- }
-
- #
- # Returns true if $1 is 32-bit binary
- #
- is32() {
- if pathfind file; then
- path=`pathfind -p "$*"`
- is32=`file -L "$path" | grep 32-bit`
- if [ "$is32" = "" ]; then
- return 1
- else
- return 0
- fi
- else
- return 1
- fi
- }
-
- #
- # N-up-ify the job. Requires psnup from psutils package
- #
- nup() {
- case "$NUP" in
- [2368]|1[0458])
- tr '\r' '\n' | psnup $NUP_ORIENT -d2 -$NUP -m.3in -p$paper -q
- ;;
- [49]|1[26])
- tr '\r' '\n' | psnup $NUP_ORIENT -d2 -$NUP -m.5in -p$paper -q
- ;;
- *)
- error "Illegal call to nup()."
- ;;
- esac
- }
-
- #
- # Process the options
- #
-
- # Try to use a local copy of GhostScript 8.54, if available. Otherwise,
- # fallback to whatever the Linux distro has installed (usually 7.07)
- #
- # N.B. := operator used here, when :- would be better, because "ash"
- # doesn't have :-
- if gs.foo -v >/dev/null 2>&1; then
- GSBIN=${GSBIN:-gs.foo}
- else
- GSBIN=${GSBIN:-gs}
- fi
-
- CMDLINE="$*"
- DEBUG=0
- DUPLEX=1
- BPP=1
- COLOR=
- COLORMODE=default
- MODEL=0
- QUALITY=1
- QUALITY=wts
-
- MEDIA=1
- COPIES=1
- test -r /etc/papersize && PAPER=$(cat /etc/papersize)
- test "$PAPER" || PAPER=1
- RES=600x600
- SOURCE=7
- NUP=
- CLIP_UL=
- CLIP_LR=
- CLIP_LOG=
- BC=
- AIB=
- NOPLANES=
- COLOR2MONO=
- GAMMAFILE=default
- INTENT=0
- GSOPTS=
- EXTRAPAD=
- SAVETONER=
- NUP_ORIENT=
- GSDEV=-sDEVICE=pbmraw
- SEGFAULT=0
- # What mode to use if the user wants us to pick the "best" mode
- case `$GSBIN --version` in
- 7*)
- DEFAULTCOLORMODE=10
- ;;
- 8.1*)
- # Buggy 8.14/8.15 in Ubuntu
- DEFAULTCOLORMODE=10
- if is32 $GSBIN; then
- GAMMAFILE=km2430_2.icm
- else
- GAMMAFILE=hpclj2600n-0.icm
- SEGFAULT=1
- fi
- QUALITY=1
- ;;
- *)
- DEFAULTCOLORMODE=10
- ;;
- esac
-
- while getopts "1:23456789o:b:cC:d:g:l:u:L:m:n:p:q:r:s:tz:ABS:D:G:I:PX:Vh?" opt
- do
- case $opt in
- b) BPP="$OPTARG";;
- c) COLOR=-c;;
- d) DUPLEX="$OPTARG";;
- g) GSOPTS="$GSOPTS $OPTARG";;
- m) MEDIA="$OPTARG";;
- n) COPIES="$OPTARG";;
- p) PAPER="$OPTARG";;
- q) QUALITY="$OPTARG";;
- r) RES="$OPTARG";;
- s) SOURCE="$OPTARG";;
- t) SAVETONER="-t";;
- z) MODEL="$OPTARG";;
- l) CLIP_LR="-l $OPTARG";;
- u) CLIP_UL="-u $OPTARG";;
- L) CLIP_LOG="-L $OPTARG";;
- A) AIB=-A;;
- B) BC=-B;;
- C) COLORMODE="$OPTARG";;
- S) COLOR2MONO="-S$OPTARG";;
- D) DEBUG="$OPTARG";;
- G) GAMMAFILE="$OPTARG";;
- I) INTENT="$OPTARG";;
- P) NOPLANES=-P;;
- X) EXTRAPAD="-X $OPTARG";;
- [234689]) NUP="$opt";;
- [57]) error "Can't find acceptable layout for $opt-up";;
- 1) case "$OPTARG" in
- [024568]) NUP="1$OPTARG";;
- *) error "Can't find acceptable layout for 1$OPTARG-up";;
- esac
- ;;
- o) case "$OPTARG" in
- l*) NUP_ORIENT=-l;;
- s*) NUP_ORIENT=-r;;
- p*|*) NUP_ORIENT=;;
- esac;;
- V) echo "$VERSION"; foo2hp -V; foo2zjs-pstops -V; exit 0;;
- h|\?)
- if [ "$CMDLINE" != "-?" -a "$CMDLINE" != -h ]; then
- echo "Illegal command:"
- echo " $0 $CMDLINE"
- echo
- fi
- usage;;
- esac
- done
- shift `expr $OPTIND - 1`
-
- #
- # If there is an argument left, take it as the file to print.
- # Else, the input comes from stdin.
- #
- if [ $# -ge 1 ]; then
- if [ "$LPJOB" = "" ]; then
- : # LPJOB="$1"
- fi
- exec < $1
- fi
-
-
- #
- # Select the ghostscript device to use
- #
- case "$BPP" in
- 1) if [ "" = "$COLOR" ]; then
- GSDEV=-sDEVICE=pbmraw
- else
- GSDEV=-sDEVICE=bitcmyk
- fi
- case "$GAMMAFILE" in
- default)
- case "$MODEL" in
- 0)
- if [ $SEGFAULT = 0 ]; then
- GAMMAFILE=hpclj2600n-1.icm
- else
- GAMMAFILE=hpclj2600n-0.icm
- fi
- ;;
- 1)
- GAMMAFILE=hp1215-argyll-0.icm
- ;;
- esac
- ;;
- none) GAMMAFILE=;;
- esac
- ;;
- 2) if [ "" = "$COLOR" ];
- then
- # GSDEV=-sDEVICE=pgmraw
- # error "2-bpp monochrome is not yet supported"
- GSDEV="-sDEVICE=cups -dcupsColorSpace=3 -dcupsBitsPerColor=2"
- GSDEV="$GSDEV -dcupsColorOrder=2"
- else
- GSDEV="-sDEVICE=cups -dcupsColorSpace=6 -dcupsBitsPerColor=2"
- GSDEV="$GSDEV -dcupsColorOrder=2"
- fi
- if [ $GSBIN = "gs.foo" ]; then
- GSBIN=gs
- fi
-
- case "$GAMMAFILE" in
- default)
- case "$MODEL" in
- 0)
- if is32 $GSBIN; then
- GAMMAFILE=km2430_2.icm
- GAMMAFILE=hpclj2600n-1.icm
- else
- GAMMAFILE=
- fi
- ;;
- 1)
- GAMMAFILE=hp1215-argyll-0.icm
- ;;
- esac
- ;;
- none) GAMMAFILE=;;
- esac
- ;;
- *) error "Illegal number of bits per plane ($BPP)";;
- esac
-
- #
- # Validate model code
- #
- case "$MODEL" in
- 0|1) ;;
- *) error "Unknown model code $MODEL";;
- esac
-
- #
- case "$QUALITY" in
- 0)
- GSOPTS="-dCOLORSCREEN $GSOPTS"
- ;;
- 1)
- GSOPTS="-dCOLORSCREEN $GSOPTS"
- ;;
- 2)
- GSOPTS="-dMaxBitmap=500000000 $GSOPTS"
- ;;
- wts)
- GSOPTS="-dCOLORSCREEN -dMaxBitmap=500000000 $GSOPTS"
- ;;
- esac
-
- #
- # Validate media code
- #
- case "$MEDIA" in
- 1|plain) MEDIA=1;;
- 514|preprinted) MEDIA=514;;
- 513|letterhead) MEDIA=513;;
- 2|transparency) MEDIA=2;;
- 515|prepunched) MEDIA=515;;
- 265|labels) MEDIA=265;;
- 260|bond) MEDIA=260;;
- 516|recycled) MEDIA=516;;
- 512|color) MEDIA=512;;
- 276|tough) MEDIA=276;;
- 267|envelope) MEDIA=267;;
- 258|light) MEDIA=258;;
- 262|heavy) MEDIA=262;;
- 261|cardstock) MEDIA=261;;
- 268|lightglossy) MEDIA=268;;
- 269|glossy) MEDIA=269;;
- 270|heavyglossy) MEDIA=270;;
- 277|cover) MEDIA=277;;
- 278|photo) MEDIA=278;;
- [0-9]*) ;;
- *) error "Unknown media code $MEDIA";;
- esac
-
- #
- # Validate source (InputSlot) code
- #
- case "$SOURCE" in
- 1|tray2) SOURCE=1;;
- 4|tray1) SOURCE=4;;
- 7|auto) SOURCE=7;;
- [0-9]*) ;;
- *) error "Unknown source code $SOURCE";;
- esac
-
- #
- # Validate Duplex code
- #
- case "$DUPLEX" in
- 1|off|none) DUPLEX=1;;
- 2|long*) DUPLEX=2;;
- 3|short*) DUPLEX=3;;
- [0-9]*) ;;
- *) error "Unknown duplex code $DUPLEX";;
- esac
-
- #
- # Validate Resolution
- #
- case "$RES" in
- 600x600) ;;
- 1200x600) ;;
- 2400x600) ;;
- *) error "Illegal resolution $RES";;
- esac
-
- #
- # Figure out the paper dimensions in pixels/inch, and set the
- # default clipping region. Unfortunately, this is a trouble
- # area for ZjStream printers. Various versions of ZjS print
- # engines react differently when asked to print into their
- # unprintable regions.
- #
- set_clipping() {
- ulx=$1; uly=$2
- lrx=$3; lry=$4
-
- # Set clipping region if it isn't already set
- if [ "$CLIP_UL" = "" ]; then
- case "$RES" in
- 600x600) ulx=`expr $ulx / 2`;;
- 2400x600) ulx=`expr $ulx \* 2`;;
- esac
- CLIP_UL="-u ${ulx}x${uly}"
- fi
- if [ "$CLIP_LR" = "" ]; then
- case "$RES" in
- 600x600) lrx=`expr $lrx / 2`;;
- 2400x600) lrx=`expr $lrx \* 2`;;
- esac
- CLIP_LR="-l ${lrx}x${lry}"
- fi
- }
-
- case "$PAPER" in
- Custom*)
- case "$PAPER" in
- Custom\.[0-9]*\x[0-9]*)
- XDIM=`echo "$PAPER" | sed -e 's/Custom\.//' -e 's/x.*//'`
- YDIM=`echo "$PAPER" | sed -e 's/Custom\.//' -e 's/.*x//'`
- ;;
- *)
- #%%BeginFeature: *CustomPageSize True
- #216
- #360
- #0
- #0
- #0
- #pop pop pop pop pop
-
- #%%BeginFeature: *CustomPageSize True
- #792.000000 612.000000 1 0.000000 0.000000
- #pop pop pop pop pop
-
- if [ $DEBUG = 0 ]; then
- TMPFILE=/tmp/cus$$
- else
- TMPFILE=/tmp/custom.ps
- fi
- cat >$TMPFILE
- exec <$TMPFILE
-
- tmp=`head -n 10000 $TMPFILE \
- | sed -n '/CustomPageSize/{n;p;n;p;}' \
- | tr '\n' ' '`
- case "$tmp" in
- [0-9]*\ [0-9]*)
- XDIM=`echo "$tmp" | sed 's/ .*//'`
- YDIM=`echo "$tmp" | sed -e 's/^[^ ]* //' -e 's/ .*//'`
- ;;
- *)
- if [ $DEBUG = 0 ]; then rm -f $TMPFILE; fi
- error "Custom page size [XY]DIM != 1-99999"
- ;;
- esac
- ;;
- esac
- XDIM=`dc -e "$XDIM 1200* 72/p"`
- YDIM=`dc -e "$YDIM 600* 72/p"`
- PAPER=1; paper=letter;
- set_clipping 2 80 2 80
- ;;
- 1|letter) PAPER=1; paper=letter; XDIM="10200"; YDIM="6600"
- set_clipping 172 80 172 80
- ;;
- 5|legal) PAPER=5; paper=legal; XDIM="10200"; YDIM="8400"
- set_clipping 172 80 172 80
- ;;
- 7|executive) PAPER=7; paper=executive; XDIM="8700"; YDIM="6300"
- set_clipping 174 78 174 78
- ;;
- 9|a4|A4) PAPER=9; paper=a4; XDIM="9920"; YDIM="7016"
- set_clipping 176 84 176 84
- ;;
- 11|a5|A5) PAPER=11; paper=a5; XDIM="6992"; YDIM="4960"
- set_clipping 176 80 176 80
- ;;
- 13|b5|B5|b5jis) PAPER=13; paper=b5; XDIM="8598"; YDIM="6070"
- set_clipping 172 83 171 83
- ;;
- 20|"env#10") PAPER=20; paper=env10; XDIM="4950"; YDIM="5700"
- set_clipping 171 78 171 78
- ;;
- 27|envDL) PAPER=27; paper=envDL; XDIM="5200"; YDIM="5200"
- set_clipping 176 84 176 84
- ;;
- 28|envC5) PAPER=28; paper=envC5; XDIM="7650"; YDIM="5408"
- set_clipping 170 80 169 80
- ;;
- 34|envB5) PAPER=34; paper=envB5; XDIM="8316"; YDIM="5892"
- set_clipping 174 74 174 74
- ;;
- 37|envMonarch) PAPER=37; paper=envMonarch;XDIM="4650"; YDIM="4500"
- set_clipping 174 78 173 78
- ;;
- *) error "Unimplemented paper code $PAPER";;
- esac
- # e.g. /usr/share/ghostscript/7.07/lib/gs_statd.ps
- PAPERSIZE="-sPAPERSIZE=$paper";
-
- case "$RES" in
- 600x600) XDIM=`expr $XDIM / 2`;;
- 1200x600) ;;
- 2400x600) XDIM=`expr $XDIM \* 2`;;
- esac
- DIM="${XDIM}x${YDIM}"
-
- #
- # Filter thru psnup if N-up printing has been requested
- #
- case $NUP in
- [234689]|1[024568]) PREFILTER="nup";;
- *) PREFILTER=cat;;
- esac
- if [ "$DEBUG" -ge 9 ]; then
- PREFILTER="tee /tmp/$BASENAME.ps"
- fi
-
- #
- # Overload -G. If the file name ends with ".icm" or ".ICM"
- # then convert the ICC color profile to a Postscript CRD,
- # then prepend it to the users job. Select the intent
- # using the -I option.
- #
-
- create_crd() {
- #
- # Create a Postscript CRD
- #
- ICC2PS=$PREFIX/bin/foo2zjs-icc2ps
- if [ -x $ICC2PS ]; then
- case "$GAMMAFILE" in
- none.icm | */none.icm)
- ;;
- *)
- if [ -x /usr/bin/logger ]; then
- logger -t "$BASENAME" -p lpr.info -- \
- "`basename $ICC2PS` -o $GAMMAFILE -t$INTENT > $ICCTMP.crd.ps"
- fi
- $ICC2PS -o $GAMMAFILE -t$INTENT > $ICCTMP.crd.ps 2>$ICCTMP.log \
- || error "Problem converting .ICM file to Postscript"
- ;;
- esac
-
- PSTOPS_OPTS="$PSTOPS_OPTS -c"
- cat > $ICCTMP.usecie.ps <<-EOF
- %!PS-Adobe-3.0
- <</UseCIEColor true>>setpagedevice
- EOF
- if [ "$QUALITY" = wts ]; then
- cat >> $ICCTMP.usecie.ps <<-EOF
- << /UseWTS true >> setuserparams
- <<
- /AccurateScreens true
- /HalftoneType 1
- /HalftoneName (Round Dot Screen) cvn
- /SpotFunction { 180 mul cos exch 180 mul cos add 2 div}
- /Frequency 137
- /Angle 37
- >> sethalftone
- EOF
- fi
- cat > $ICCTMP.selcrd.ps <<-EOF
- /Current /ColorRendering findresource setcolorrendering
- EOF
- case "$GAMMAFILE" in
- none.icm | */none.icm) GAMMAFILE="$ICCTMP.usecie.ps";;
- *) GAMMAFILE="$ICCTMP.usecie.ps $ICCTMP.crd.ps $ICCTMP.selcrd.ps";;
- esac
- else
- GAMMFILE=
- fi
- }
-
- if [ $DEBUG -gt 0 ]; then
- ICCTMP=/tmp/icc
- else
- ICCTMP=/tmp/icc$$
- fi
-
- if [ "" = "$COLOR" ]; then
- COLORMODE=
- GAMMAFILE=
- else
- case "$COLORMODE" in
- default) COLORMODE=$DEFAULTCOLORMODE;;
- esac
- fi
-
- CRDBASE="$PREFIX/share/foo2zjs/crd"
- PSFILES="$PREFIX/share/foo2hp/psfiles"
- case "$RES" in
- 600x600) SCREEN=screen1200.ps;;
- 1200x600) SCREEN=screen1200.ps;;
- 2400x600) SCREEN=screen2400.ps;;
- esac
-
- PSTOPS_OPTS="-n"
-
- case "$COLORMODE" in
- 0|"")
- # Monochrome
- ;;
- 10|icm)
- # Use old ICM method
- AIB=-A
- BC=-B
- case "$GAMMAFILE" in
- none.icm | */none.icm)
- create_crd
- ;;
- *.icm|*.ICM|*.icc|*.ICC)
- #
- # Its really an .ICM file, not a gamma file.
- #
- # The file can be a full path name, or the name of a file in $SHARE/icm/
- #
- if [ -r "$GAMMAFILE" ]; then
- create_crd
- elif [ -r "$SHARE/icm/$GAMMAFILE" ]; then
- GAMMAFILE="$SHARE/icm/$GAMMAFILE"
- create_crd
- else
- GAMMAFILE=
- fi
- ;;
- esac
- ;;
- *.crd)
- GAMMAFILE="$CRDBASE/prolog.ps"
- if [ -f $COLORMODE ]; then
- GAMMAFILE="$GAMMAFILE $COLORMODE"
- elif [ -f $CRDBASE/$COLORMODE ]; then
- GAMMAFILE="$GAMMAFILE $CRDBASE/$COLORMODE"
- else
- error "Can't find CRD '$COLORMODE' in . or in $CRDBASE"
- fi
- GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"
- ;;
- *)
- error "Unknown color method '$COLORMODE'"
- ;;
- esac
-
- if [ "$COLOR" != "" -a "$QUALITY" = wts ]; then
- PSTOPS_OPTS="$PSTOPS_OPTS -w"
- fi
-
- if [ "" != "$COLOR" ]; then
- if [ "" = "$AIB" -a "" = "$BC" ]; then
- # Faster, but can't handle AllIsBlack or BlackClears
- : #GSDEV=-sDEVICE=pksmraw
- else
- # Can't handle different size pages
- : #GSDEV=-sDEVICE=bitcmyk
- fi
- fi
-
- #
- # Figure out USERNAME
- #
- if [ "$LPUSER" != "" ]; then
- USER="$LPUSER@$LPHOST"
- else
- USER=""
- fi
-
- #
- # Main Program, just cobble together the pipeline and run it
- #
- # The malarky with file descriptors 1 and 3 is to avoid a bug in
- # (some versions?) of Ghostscript where Postscript's stdout gets
- # intermingled with the printer drivers output, resulting in
- # corrupted image data.
- #
- # CUPS also does grief by adding its own PS code to the input file.
- # We take care of that with the sed command. Thus, Well Tempered
- # Screening now works!
- #
- GS="$GSBIN -q -dBATCH -dSAFER -dQUIET -dNOPAUSE"
-
- foo2zjs-pstops $PSTOPS_OPTS | \
- $PREFILTER \
- | ($GS $PAPERSIZE -g$DIM -r$RES $GSDEV $GSOPTS \
- -sOutputFile="|cat 1>&3" $GAMMAFILE -_ >/dev/null 2>&1) 3>&1 \
- | foo2hp -r$RES -g$DIM -p$PAPER -m$MEDIA -n$COPIES -d$DUPLEX -s$SOURCE \
- $COLOR -b$BPP $CLIP_UL $CLIP_LR $CLIP_LOG $SAVETONER \
- -J "$LPJOB" -U "$USER" \
- $BC $AIB $COLOR2MONO $NOPLANES $EXTRAPAD -D$DEBUG
-
- #
- # Log the command line, for debugging and problem reports
- #
- if [ -x /usr/bin/logger ]; then
- logger -t "$BASENAME" -p lpr.info -- \
- "$GSBIN $PAPERSIZE -g$DIM -r$RES $GSDEV $GSOPTS $GAMMAFILE"
- logger -t "$BASENAME" -p lpr.info -- \
- "foo2hp -r$RES -g$DIM -p$PAPER -m$MEDIA \
- -n$COPIES -d$DUPLEX -s$SOURCE $COLOR -b$BPP $CLIP_UL $CLIP_LR $CLIP_LOG \
- $SAVETONER $BC $AIB $COLOR2MONO $NOPLANES $EXTRAPAD"
- fi
-
- #
- # Remove cruft
- #
- if [ $DEBUG -eq 0 ]; then
- for i in crd.ps log usecie.ps selcrd.ps
- do
- file="$ICCTMP.$i"
- [ -f $file ] && rm -f $file
- done
- [ -f "$TMPFILE" ] && rm -f $TMPFILE
- fi
-
- exit 0
-